// -------------- 数组转对象 ---------------

const list = [
  { title: '销售额趋势图', type: 1 },
  { title: '销售商品件数趋势图', type: 2 },
  { title: '毛利润趋势图', type: 3 },
  { title: '净利润趋势图', type: 4 },
  { title: '销售订单趋势图', type: 5 },
];

let obj = {}

for (let item of list) {
  obj = { ...obj, [item.type]: item.title }
}

console.log(obj)

// result:
// {
//   '1': '销售额趋势图',
//   '2': '销售商品件数趋势图',
//   '3': '毛利润趋势图',
//   '4': '净利润趋势图',
//   '5': '销售订单趋势图'
// }

/**
 * 数组转map结构（通用方法）
 * @param {*} param0 list 为对象数组 keyValue 为数组上对应要转成map结构的key值和value值
 * @returns { key: value, ... }
 */

const listToMap = ({ list, keyValue }) => {
  let obj = {};
  for (let item of list) {
    obj = { ...obj, [item[keyValue?.key || 'key']]: item[keyValue?.value || 'value'] };
  }
  return obj;
};

// 初始结构
let l = [
  { key: 'sku', value: 123 },
  { key: 'type', value: 456 }
]
console.log(listToMap({ list: l }))

// result:
// { sku: 123, type: 456 }

// -------------- 对象转数组 ---------------

let arr = [];
for (let [type, title] of Object.entries(obj)) {
  arr.push({ title, type })
}

console.log(arr)

// retult:
// [
//   { title: '销售额趋势图', type: '1' },
//   { title: '销售商品件数趋势图', type: '2' },
//   { title: '毛利润趋势图', type: '3' },
//   { title: '净利润趋势图', type: '4' },
//   { title: '销售订单趋势图', type: '5' }
// ]
